﻿//using System;
//using System.Collections.Generic;
//using System.Data;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
//using Microsoft.EntityFrameworkCore;
//using Project.Models.System;
//using Project.Models.System.ApprovalFile;
//using Project.Models.System.ApprovalFile.LeaveRequestFile;
//using Project.Models.System.DepartmentFile;
//using Project.Models.System.JurisdictionFile;
//using Project.Models.System.Rest;
//using Project.Models.System.StaffFile;
//using Project.Models.System.StaffFile.StaffLifeCycle;

//namespace Project.Models
//{
//    /// <summary>
//    /// 上下文注册
//    /// </summary>
//    public class ProjectContent : DbContext
//    {
//        /// <summary>
//        /// 连接串
//        /// </summary>
//        private string ConStr => "server=.;database=GraduationProject;uid=sa;pwd=sa";

//        /// <summary>
//        /// 连接数据库
//        /// </summary>
//        /// <param name="optionsBuilder"></param>
//        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) =>
//            optionsBuilder.UseSqlServer(ConStr);

//        #region Sql语句通用增删改

//        /// <summary>
//        /// 增删改查
//        /// </summary>
//        /// <param name="sql"></param>
//        /// <returns></returns>
//        public async Task<bool> Update(string sql)
//        {
//            var con = this.Database.GetDbConnection();
//            await con.OpenAsync();
//            var cmd = con.CreateCommand();
//            cmd.CommandText = sql;
//            var result = await cmd.ExecuteNonQueryAsync() > 0;
//            await con.CloseAsync();
//            return result;
//        }

//        /// <summary>
//        /// 返回第一行第一列
//        /// </summary>
//        /// <param name="sql"></param>
//        /// <returns></returns>
//        public async Task<object> GetFirstRowColumn(string sql)
//        {
//            var con = this.Database.GetDbConnection();
//            await con.OpenAsync();
//            var cmd = con.CreateCommand();
//            cmd.CommandText = sql;
//            var result = await cmd.ExecuteScalarAsync();
//            await con.CloseAsync();
//            return result;
//        }

//        /// <summary>
//        /// 返回结果集
//        /// </summary>
//        /// <param name="sql"></param>
//        /// <returns></returns>
//        public async Task<List<T>> GetDataReader<T>(string sql) where T : new()
//        {
//            var con = this.Database.GetDbConnection();
//            await con.OpenAsync();
//            var cmd = con.CreateCommand();
//            cmd.CommandText = sql;
//            var dr = await cmd.ExecuteReaderAsync(CommandBehavior.CloseConnection);
//            List<T> list = new List<T>();
//            while (await dr.ReadAsync())
//            {
//                T t = new();
//                foreach (var property in t.GetType().GetProperties())
//                {
//                    property.SetValue(t, dr[property.Name]);
//                }
//                list.Add(t);
//            }
//            await con.CloseAsync();
//            await dr.CloseAsync();
//            return list;
//        }


//        #endregion

//        #region 部门

//        // 部门管理
//        public DbSet<DepartmentAdmin> DepartmentAdmins { get; set; }
//        // 部门
//        public DbSet<Department> Departments { get; set; }
//        // 职位
//        public DbSet<Position> Positions { get; set; }

//        #endregion

//        #region 员工

//        // 入职资料
//        public DbSet<EntryDocument> EntryDocuments { get; set; }
//        // 员工
//        public DbSet<Staff> Staffs { get; set; }
//        // 用户
//        public DbSet<UserInfo> UserInfos { get; set; }

//        #endregion

//        #region 权限

//        // 管理员
//        public DbSet<AdministratorInfo> AdministratorInfos { get; set; }
//        // 管理员角色
//        public DbSet<AdministratorRole> AdministratorRole { get; set; }
//        // 菜单
//        public DbSet<MenuInfo> MenuInfos { get; set; }
//        // 页面权限
//        public DbSet<MenuPermissionsPage> MenuPermissionsPages { get; set; }
//        // 角色
//        public DbSet<RoleInfo> RoleInfos { get; set; }
//        //角色菜单
//        public DbSet<RoleMenu> RoleMenus { get; set; }

//        #endregion

//        #region 申请

//        // 抄送表
//        public DbSet<AskForLeaveApproval> AskForLeaveApproval { get; set; }
//        // 申请状态
//        public DbSet<ApplyState> ApplyStates { get; set; }
//        // 请假申请
//        public DbSet<LeaveRequest> LeaveRequest { get; set; }

//        #endregion

//        // 数据字典
//        public DbSet<DataDictionary> DataDictionaries { get; set; }
//        public DbSet<DataDictionary1> DataDictionary1s { get; set; }

//        /// <summary>
//        /// 多重级联报错
//        /// </summary>
//        /// <param name="modelBuilder"></param>
//        protected override void OnModelCreating(ModelBuilder modelBuilder)
//        {
//            //modelBuilder.Entity<Become>()
//            //    .HasOne(t => t.Position).WithMany()
//            //    .HasForeignKey(t => t.PositionId)
//            //    .OnDelete(DeleteBehavior.Restrict);
//        }
//    }
//}
